home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
tool
/
kalpiko
/
mfscan_1.bas
next >
Wrap
BASIC Source File
|
1995-08-16
|
3KB
|
72 lines
10 DEFLNG A-Z:DIM CRTC(31)
100 '
110 ' ニここからあなたのプログラムをつくりましょう!!
120 '
130 COLOR 7,0,0:SCREEN 0:SCREEN @0:CLS:DEF SPRITE 99,0:DEF SPRITE 3
140 DIM A%(256),A$(3)
150 FOR A=0 TO 2:READ A$(A):NEXT
160 SYMBOL(1,0),"SPR",.6!,1,%6,,PSET
170 LINE(0,0)-(15,15),PSET,%4,B:GET@A(0,0)-(15,15),A%:DEF SPRITE 0,0,A%,0
180 SPRITE ON
190 NO=0:FOR Y=0 TO 14:FOR X=0 TO 15:DEF SPRITE 1,NO,(X*16,Y*16),0:SPRITE 0,NO,1:NO=NO+1:NEXT X,Y
200 FOR A=0 TO 2:COLOR 7,0,0:COLOR 7,%7,0
210 LINE(0,0)-(511,239),PSET,[0,0,0,1],BF
220 LINE(0,0)-(15,15),PSET,7,B
230 LINE(0,0)-(255,239),PSET,7,B
240 LINE(0,0)-(255,239),PSET,7
250 SYMBOL(15,80),A$(A),.7!,1,7,,PSET,16+8
260 SYMBOL(10,120),"PRESS ANY KEY !",2,1,6,,PSET,16+8
270 ON A+1 GOSUB *HIGH_WIDE,*HIGH,*LOW_WIDE
280 IF INKEY$<>"" THEN 280
285 SPRITE TIME:FOR NO=0 TO 239:SPRITE 6,NO,INT(RND*3)-1,INT(RND*3)-1:NEXT
290 IF INKEY$="" THEN 285
300 NEXT
310 GOSUB *INTERRUPT
320 END
330 DATA "HIGH_WIDE mode [ 従来:横長 / MF:正方 ]"
340 DATA "HIGH mode [ 従来:正方 / MF:正方 ]"
350 DATA "LOW _WIDE mode [ 従来:横長 / MF:横長 ]"
360 :
370 :
380 :
30000 ' ニここからは画面モ-ド変更するやつです
30010 '
30020 *HIGH_WIDE
30030 RESTORE 30060
30040 FOR I=0 TO 31:READ A$:CRTC(I)=VAL("&h"+A$)+(VAL("&h"+A$)>32767)*65536!
30050 OUT &H440,I:OUT &H442,CRTC(I),2:NEXT
30060 DATA 0050,024E,0000,0000,029D,0000,0004,0000
30070 DATA 0419,007E,027E,007E,027E,0046,0406,0046
30080 DATA 0406,0000,007E,0000,0080,0000,007E,0000
30090 DATA 0080,004A,0001,1111,8007,0003,F000,0150
30100 OUT &H448, 0:OUT &H44A,&H1D:OUT &H448,1:OUT &H44A,&H08 :'&H09=SPR / &H08=GRF が前
30110 ' ~~~~
30120 '横比率 1.25倍 横ドット数 256dot
30130 '縦比率 1.00倍 縦ドット数 240dot
30140 RETURN
30150 :
30160 *HIGH
30170 RESTORE 30200
30180 FOR I=0 TO 31:READ A$:CRTC(I)=VAL("&h"+A$)+(VAL("&h"+A$)>32767)*65536!
30190 OUT &H440,I:OUT &H442,CRTC(I),2:NEXT
30200 DATA 0060,02C0,0000,0000,031F,0000,0004,0000
30210 DATA 0419,00CA,02CA,00CA,02CA,0046,0406,0046
30220 DATA 0406,0000,00CA,0000,0080,0000,00CA,0000
30230 DATA 0080,0058,0001,1111,8007,0002,F000,0192
30240 OUT &H448, 0:OUT &H44A,&H1D:OUT &H448,1:OUT &H44A,&H08
30250 RETURN
30260 :
30270 *LOW_WIDE
30280 RESTORE 30310
30290 FOR I=0 TO 31:READ A$:CRTC(I)=VAL("&h"+A$)+(VAL("&h"+A$)>32767)*65536!
30300 OUT &H440,I:OUT &H442,CRTC(I),2:NEXT
30310 DATA 0074,0530,0000,0000,0617,0006,000C,0012
30320 DATA 020B,00E7,05E7,00E7,05E7,002A,020A,002A
30330 DATA 020A,0000,00E7,0000,0080,0000,00E7,0000
30340 DATA 0080,0056,0001,0404,8007,0001,F002,0188
30350 OUT &H448, 0:OUT &H44A,&H1D:OUT &H448,1:OUT &H44A,&H08
30360 RETURN
30370 *INTERRUPT
30380 SPRITE ON:SPRITE OFF:COLOR 7,0,0:SCREEN@ 0:CLS:PLAY OFF:END
30390 END